package skyhyun;

public class J09_While {

	/**
	 * 반복문(Loop)
	 *	가끔 어떤 동작을 여러 번 수행해야 할 때가 있음
	 *	코드를 복사해서 반복을 해도 해결되지 않는 문제 발생
	 *	반복횟수가 5번이면 코드 줄수도 5줄 작성
	 *	코드내 내용이 수정되면 그 사본도 수정
	 *
	 * 	이것에 대한 현명한 방법은 반복문 안에 코드를 넣는 것
	 * 	즉, 반복할 코드를 한줄만 작성하고 컴파일러에게ㅐ 이 코드를 몇번이고 반복 실행하라고 지시할 수 있음
	 * 
	 * 	반복문의 종류
	 * 	while, do-while, for	 
	 * 
	 * 	while ( 조건식) {
	 * 		문장;
	 * 	}
	 * 
	 *	조건식의 결과가 참이면 블록 안의 문제가 실행되고 다시 조건식을 검사
	 * 	따라서 반복 실행을 중단하려면 조건식의 결과가 '거짓'이 되도록 만들거나 break 문을 사용하면 됨
	 * 	
	 * 	반복문의 처리 과정을 단계별로 파악하려면 통합개발환경의 디버깅 기능을 이용하면 된
	 * 
	 * 	break, continue
	 * 	break 문은 while, do-while, for 문의 반복실행을 중단하기 위해 사용
	 * 	break 문을 아무대나 사용하면 컴파일 오류 발생
	 * 	continue 문은 while, do-while, for 문의 현재 반복을 중단하고 다음 반복의 시작으로 제어를 넘김
	 */
	
	public static void main(String[] args) {
		
		// 반복 처리 문을 사용하지 않았을 때
		System.out.println("너 하나야!!");
		
		System.out.println("너 하나야!!");
		System.out.println("너 하나야!!");
		System.out.println("너 하나야!!");
		
		System.out.println("너 하나야!!");
		System.out.println("너 하나야!!");
		System.out.println("너 하나야!!");
		System.out.println("너 하나야!!");
		System.out.println("너 하나야!!");
		
		// 문제 1. 반복문을 사용하지 않고 '시간은 금이라구, 친구!!' 라는 문장을 5번 반복 출력 
		System.out.println("시간은 금이라구 친구!!");
		System.out.println("시간은 금이라구 친구!!");
		System.out.println("시간은 금이라구 친구!!");
		System.out.println("시간은 금이라구 친구!!");
		System.out.println("시간은 금이라구 친구!!");
		System.out.println();
		// 반복문
		int count = 0;
		while( count < 5) {
			System.out.println("시간은 금이라구 친구!!");
			count++;
		}
		
		// 문제 2. 반복문을 사용하지 않고 1~10 까지 출력하는 프로그램
		System.out.println(1);
		System.out.println(2);
		System.out.println(3);
		System.out.println(4);
		System.out.println(5);
		System.out.println(6);
		System.out.println(7);
		System.out.println(8);
		System.out.println(9);
		System.out.println(10);

		// 반복문
		count = 1;
		while(count <= 10) {
			System.out.println(count);
			count++;
		}
		
		// 문제 3. 반복문을 이용해서 19단의 19단을 출력해 보시요
		count = 1;
		while(count <= 19) {
			System.out.println(19 + " X " + count + " = " + (count * 19) );
			count++;
		}
		
		// 문제 4. 반복문과 break를 이용해서 1~10까지 출력하는 프로그램
		count = 1;
		while(count <= 10) {
			System.out.println(count);
			count++;
		} // break 를 사용하지 않음
		
		count = 1;
		while(true) {
			if (count > 10) break;
			System.out.println(count);
			count++;
		} // break 를 사용함
		
		// 문제 5. 반복문과 continue 를 이용해서 1~10까지 출력하는 프로그램
		// 단, 5는 출력하지 않음
		
		count = 1;
		while(count <= 10) {
			if(count != 5) System.out.println( count );
			++count;
		} // continue 를 사용하지 않았을 때
		
		count = 1;
		while(count <=10) {
			if (count == 5) { count++; continue; }
			System.out.println(count);
			count++;
		} // continue 를 사용했을 때
		
		// 문제 6. 1 ~ 100 사이에 짝수만 출력
		count = 1;
		while (count < 100) {
			if ( count % 2 == 0 ) { System.out.println(count);	}
			count++;
		}
		
		// 문제 7. 1~100 사이에 홀수만 출력
		count = 1;
		while (count < 100) {
			if ( count % 2 != 0 ) { 	System.out.println(count); }
			count++;
		}
	}
}
